package com.zishi.controller;


import com.zishi.model.dto.IdsDTO;
import com.zishi.model.pojo.Article;
import com.zishi.service.ArticleService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.ArrayList;
import java.util.List;

/**
 * <p>
 * 文章表 前端控制器
 * </p>
 *
 * @author TP
 * @since 2022-05-05 08:53:41
 */
@RestController
@RequestMapping("/zishi/article")
public class ArticleController {

    @Autowired
    private ArticleService articleService;

    /**
     * 获取所有文章
     */
    @GetMapping("")
    public List<Article> getAllArticle() {
        return articleService.list();
    }

    /**
     * 根据ids批量获取文章
     */
    @RequestMapping("/mget")
    public List<Article> getBatchArticle(IdsDTO ids) {
        System.out.println(ids+"\n\n");
        return articleService.listByIds(ids.getIds());
    }
    /**
     * 根据文章主键id获取文章
     */
    @GetMapping("/{id}")
    public Article getArticle(@PathVariable Integer id) {
        return articleService.getById(id);
    }

    /**
     * 插入单个文章
     */
    @PostMapping("")
    public boolean insertArticle(Article user){
        return articleService.save(user);
    }

    /**
     * 批量插入文章
     */
    @PostMapping("/mcreate")
    public boolean insertBatchArticle(ArrayList<Article> articles){
        return articleService.saveBatch(articles);
    }

    /**
     * 根据id更新文章
     */
    @PutMapping("/{id}")
    public boolean updateArticleById(Article user, @PathVariable Integer id) {
        // TODO 可能有问题，可能会将未更新的字段也更新为null值。下次检查一下，或者改一下方法
        return articleService.updateById(user);
    }

    /**
     * 根据id删除文章
     */
    @DeleteMapping("/{id}")
    public Boolean deleteArticleById(@PathVariable Integer id) {
        return articleService.removeById(id);
    }

}
